package com.xyht.sca_s.student_manage_system.modules.carUseReturn.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xyht.sca_s.student_manage_system.common.commonReturn.ResponseResult;
import com.xyht.sca_s.student_manage_system.modules.carUseReturn.entity.SmsCarUseReturnApplication;
import com.xyht.sca_s.student_manage_system.modules.carUseReturn.entity.req.SmsCarUseReturnApplicationAllowReq;
import com.xyht.sca_s.student_manage_system.modules.carUseReturn.entity.req.SmsCarUseReturnApplicationCancelReq;
import com.xyht.sca_s.student_manage_system.modules.carUseReturn.entity.req.SmsCarUseReturnApplicationExportReq;
import com.xyht.sca_s.student_manage_system.modules.carUseReturn.entity.req.SmsCarUseReturnApplicationReq;

import javax.servlet.http.HttpServletResponse;
import java.util.concurrent.Future;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author XYHT
 * @since 2023-08-02
 */
public interface SmsCarUseReturnApplicationService extends IService<SmsCarUseReturnApplication> {

    ResponseResult returnApplication(SmsCarUseReturnApplicationReq applicationReq, String userId);

    ResponseResult cancelApplication(SmsCarUseReturnApplicationCancelReq cancelReq, String userId);

    ResponseResult getList(Integer pageSize, String search_str,Integer pageNum, Integer apply_type, String userId);

    ResponseResult getDetail(String apply_id, String userId);

    ResponseResult allowApplication(SmsCarUseReturnApplicationAllowReq allowVO, String user_id);

    ResponseResult getCarUseReturnApplicationOriginSettingProcess();

    ResponseResult selectAllCarUseReturnApply(String apply_unit, Integer pageSize, Integer pageNum);

    Future<ResponseResult> tableDownload(String apply_id, HttpServletResponse response);

    Future<ResponseResult> exportCarUseReturnApplication(SmsCarUseReturnApplicationExportReq exportReq, HttpServletResponse response);

    ResponseResult selectReturnCar(Integer pageSize, Integer pageNum, String userId);
}
